#ifndef SYSTEMCALLS_H_
#define SYSTEMCALLS_H_
#include "FileSystem.h"
typedef  int type;
class SystemCalls
{
public:
	SystemCalls();
	virtual ~SystemCalls();
	int MakeFile(char*,type,flag);
	int MakeHLink(char*,char*);
	int MakeDir(char*);
	int RmDir(char*);
	int RmFile(char*);
	int ls(char*,char*);
	int Open(char*,char*);
	int Close(int);
	int Seek(int ,int);
	int Read(int ,int ,char*);
	int Write(int,int,char*);
	void moveFile(char*,char*);
	bool isDir(char*);
//	int lockRead<fd>;
//	int lockWrite<fd>;
//	int releaseLockRead<fd>;
//	int releaseLockWrite<fd>;
};
class SystemCallsTestCase : public CPPUNIT_NS::TestCase {
	CPPUNIT_TEST_SUITE(SystemCallsTestCase);
	CPPUNIT_TEST(start);
	CPPUNIT_TEST_SUITE_END();
public:
	LowLevelLayer* _low;
	FileSystem* _TestingDisk;
	SystemCalls _SystemCalls;
	void setUp(void) {
		cout<<"set up"<<endl;
		string st("FILE_SYS");
		_low = new LowLevelLayer(st,64,6500,100);
		_TestingDisk=new FileSystem(*_low);

	}
	void tearDown(void) {
		delete _TestingDisk;
		remove("FILE_SYS");
		cout<<"tear down"<<endl;
	}
protected:
	void start(void){

	}
};
#endif /*SYSTEMCALLS_H_*/
